<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //  4-bind    
        // 作用：绑定----能给一个函数绑定一个this
        //   是函数的方法 ,但是跟（call-apply区别的是）不会调用fn函数本身
        // newFn = fn.bind(thisObj)
        // 参数1  改变了newFn运行时候的this
        // 返回值：一个新函数-新函数内容和fn一样，新函数内部 的this 被绑定成参数1

        var fn = function () {
            console.log('fn');
            console.log(this);
        }
        var obj = { name: 'zhangsan' }
        var newFn = fn.bind(obj);

        // 一个新函数-新函数内容和fn一样，新函数内部 被绑定成参数1
        console.log(newFn);
        console.log(newFn === fn);//false

        newFn();//this->obj
        fn();//window


        // setTimeout(function () {
        //     console.log('1000');
        //     console.log(this);
        // }, 1000)

        setTimeout(function () {
            console.log('1000');
            console.log(this);//-》obj
        }.bind(obj), 1000)
    </script>

</body>

</html>